//
//  UIImage+ScreenShotExtension.swift
//  WeiboSourceCode
//
//  Created by 周星宇 on 16/1/3.
//  Copyright © 2016年 cn.weibo. All rights reserved.
//

import UIKit

extension UIImage {
    
    class func getScreenShotImage() -> UIImage {
        
        // 打开图片上下文
        let window = UIApplication.sharedApplication().keyWindow
        UIGraphicsBeginImageContextWithOptions(window!.frame.size, false, 0)
        // 将window 上的内容画到上下文中 第二个参数 防止毛刺 在图形渲染完毕截图
        window?.drawViewHierarchyInRect(window!.bounds, afterScreenUpdates: false)
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image
        
    }
    /// 按指定的图片宽度去等比例缩放
    ///
    /// - parameter width:
    func scaleToWidth(width: CGFloat) -> UIImage {
        
        // 如果当前图片的宽度比要缩放的宽度小，那么直接返回
        if size.width <= width {
            return self
        }
        // 比如图片真实高度：3000，宽度是：2000
        // 高度：600,宽度：400
        let height = width / size.width * size.height
        let rect = CGRect(x: 0, y: 0, width: width, height: height)
        // 1. 开启上下文
        UIGraphicsBeginImageContext(rect.size)
        // 2. 画到上下文中--> 会把全部内容都画到指定的范围里面去
        self.drawInRect(rect)
        // 3. 取到对应的图片
        let result = UIGraphicsGetImageFromCurrentImageContext()
        // 4. 关闭上下文
        UIGraphicsEndImageContext()
        // 5. 返回图片
        return result
    }
}
